ChangeLog - automatically generated from git commit logs

Written in 2017 by Alex Vong <alexvong1995@gmail.com>

To the extent possible under law, the author(s) have dedicated all copyright
and related and neighboring rights to this software to the public domain
worldwide. This software is distributed without any warranty.

You should have received a copy of the CC0 Public Domain Dedication along
with this software.
If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.

2016-10-21  Alex Vong  <alexvong1995@gmail.com>

	Merge branch 'fix-buffer-overflow'

	Ernst's fix of buffer overflow
	This is caused by negative array index.

2016-10-17  Alex Vong  <alexvong1995@gmail.com>

	Use 'gitlog-to-changelog' to generate 'ChangeLog'.
	Instead of using 'gen-ChangeLog-NEWS'.

	Remove 'gen-ChangeLog-NEWS' as it is not needed to generated 'NEWS'.

	Update 'main.def' and 'bootstrap' to use the new script.

2016-07-28  Alex Vong  <alexvong1995@gmail.com>

	Merge branch 'fix-fermat-test'

	Add test case (fermat-test.test) for fermat test.

2016-07-27  Alex Vong  <alexvong1995@gmail.com>

	Merge branch 'fix-duplicate-cases'

2016-07-27  Alex Vong  <alexvong1995@gmail.com>

	rename shell scripts in scripts/
	Rename `self-test.test' and `spot-check.test' to`self-test.test' and
	`spot-check.test' respectively.

	Change `am/main.def' to reflect this.

2016-07-27  Alex Vong  <alexvong1995@gmail.com>

	Ernst's fix of duplicate cases.
	This fixes duplicate case error in `get_fft_radices.c'.

	In addition, it adds some new radix sets to improve performance.

2016-07-27  Alex Vong  <alexvong1995@gmail.com>

	Ernst's fix of undefined behaviour.
	This fixes undefined behaviour (array out out bound) in the fermat test
	code reported by gcc's `-Waggressive-loop-optimizations'.

2016-07-13  Alex Vong  <alexvong1995@gmail.com>

	Merge branch 's390x'

	Incorporate Ernst's latest 'platform.h'

	update autotools-generated files

2016-03-06  Alex Vong  <alexvong1995@gmail.com>

	fix undefined reference to unimplemented functions

2016-02-10  Alex Vong  <alexvong1995@gmail.com>

	Ernst's fix of `platform.h' to allow building with unknown CPU type.
	1. Remove `#undef' in the beginning of the header
	   to enable the use of `PLATFORM_DEBUG'.

	2. Set `CPU_TYPE' to `"Unknown CPU type"',
	   `CPU_NAME' to `"Unknown CPU name"'
	   and `CPU_SUBTYPE_NAME' to `"Unknown CPU subtype"'
	   if they are undefined at the end of the header.

	3. Change `CPU_TYPE not defined' from an error to a warning.

	4. Add case for unknown hardware platform.

2016-02-07  Alex Vong  <alexvong1995@gmail.com>

	add new architectures: s390, s390x

2015-10-13  Alex Vong  <alexvong1995@gmail.com>

	use verbose flag for autoreconf and update autotools-generated files

	Merge branch 'ci'

	add .gitlab-ci.yml

	simplify the .gitignore files

2015-09-04  Alex Vong  <alexvong1995@gmail.com>

	add support for operating system GNU/Hurd

2015-08-28  Alex Vong  <alexvong1995@gmail.com>

	add copyright info of generated files
	add a copy of GPL-3 to COPYING.d and distribute it

2015-08-23  Alex Vong  <alexvong1995@gmail.com>

	update autoconf to the latest version

	improve portability of the `bootstrap' script

	remove hash mark `#' from the license text in COPYING

2015-08-23  Alex Vong  <alexvong1995@gmail.com>

	rewrite DESCRIPTION section of the man page and introduction of README
	thanks Jakub Wilk <jwilk@debian.org> for suggesting the rewrite

	and Ernst W. Mayer <ewmayer@aol.com> for the rewrite

2015-08-23  Alex Vong  <alexvong1995@gmail.com>

	Merge branch 'fix-spell'

	fix spelling mistakes in the build system

2015-08-18  Alex Vong  <alexvong1995@gmail.com>

	fix spelling mistakes in the source files

2015-08-16  Alex Vong  <alexvong1995@gmail.com>

	remove copyright information of generated files
	since they depend on the version of the tools used

	change COPYING and am/main.def to support this

2015-08-14  Alex Vong  <alexvong1995@gmail.com>

	create patch/ directory
	bootstrap: patch autotools-generated files using *.patch in patch/ directory

	after `autoreconf -f -i'

	This makes sure autotools-generated files are up-to-date

	while useful patches can be applied

	update build system and COPYING to support this

2015-08-14  Alex Vong  <alexvong1995@gmail.com>

	add Large File Support which is useful for 32-bit OS

2015-08-12  Alex Vong  <alexvong1995@gmail.com>

	Merge branch 'new-arch'

	remove useless quotation

	add new architectures: armel, armhf, kfreebsd-amd64, kfreebsd-i386, mips, mipsel and powerpc

2015-08-08  Alex Vong  <alexvong1995@gmail.com>

	Merge branch 'mlucas_path'

	change the data type of the variable holding the return value of getc()
	from `char' to `int' since EOF may not be in the 1 byte range

2015-08-04  Alex Vong  <alexvong1995@gmail.com>

	Merge branch 'doc-fix'

	add Ernst's fix and addition of the man page to README

	apply Ernst's fix and addition to the man page

2015-08-04  Alex Vong  <alexvong1995@gmail.com>

	add scripts/gen-ChangeLog-NEWS to generate ChangeLog and NEWS
	so that they are always in sync

	change am/*, bootstrap and COPYING to support this

2015-08-03  Alex Vong  <alexvong1995@gmail.com>

	fix spelling mistakes

	fix minor mistakes in COPYING

	Merge branch 'old-help'

2015-08-02  Alex Vong  <alexvong1995@gmail.com>

	port Ernst's old help-description of the `-m' flag
	going back to at least 2009 to replace the current buggy help-description

2015-08-01  Alex Vong  <alexvong1995@gmail.com>

	add one of the authors Jason Papadopoulos's email

2015-07-31  Alex Vong  <alexvong1995@gmail.com>

	convert *.gif into svg format and embed them into README.html directly
	remove unused *.gif files

	change files in am/ to support this

2015-07-31  Alex Vong  <alexvong1995@gmail.com>

	upgrade autotools to the version in Debian Sid

2015-07-30  Alex Vong  <alexvong1995@gmail.com>

	add --enable-MLUCAS-DEFAULT-PATH flag so that user
	can set MLUCAS_DEFAULT_PATH macro at run-time

2015-07-30  Alex Vong  <alexvong1995@gmail.com>

	add license header or footer to all files
	rewrite COPYING file using debian copyright-format-1.0

	add COPYING.d/COPYING.* files

2015-07-30  Alex Vong  <alexvong1995@gmail.com>

	convert comments in the form `## ;; foo' to `[+ #| foo  |# +]'
	which is the real scheme multi-line comments

2015-07-30  Alex Vong  <alexvong1995@gmail.com>

	fix README and scripts/manpage.pl
	README:

	1. rewrite introduction and licensing section

	2. change bug report section to bugs section

	scripts/manpage.pl:

	1. add lines so that it is in syn with README

2015-07-30  Alex Vong  <alexvong1995@gmail.com>

	bootstrap: use the missing script to invoke perl, autogen and autoreconf
	add here-doc to generate the latest version of the missing script
	use the missing script as wrapper to invoke perl, autogen and autoreconf to
	avoid exiting without error messages when any of the tools are not avaliable

	autoreconf, autogen and perl are added as supported programs
	to support the above uses

	* boostrap: add here-doc, use the missing script as wrapper
	* missing: add autoreconf, autogen and perl as supported programs

2015-07-28  Alex Vong  <alexvong1995@gmail.com>

	Merge branch 'mlucas_path'

	add manpage.pl to generate man page from its embedded Pod

	print error messages if fail to find mlucas executables

	change some `.' to `./' to make it clear that it is a directory

	add `distclean-generic' as dependency of `distclean-local'
	so that we can remove all directories after removing their contents

2015-07-28  Alex Vong  <alexvong1995@gmail.com>

	modify scripts so that they works more robustly when invoked by pathname
	1. rewrite `scripts/mlucas.in' so that it now invokes differnt flavours of

	mlucas using relative path when invoked by pathname

	2. find and export `MLUCAS_PATH' in `scripts/*.test'

	so that `mlucas.cfg' stays in the build directory when invoked by pathname

	3. rewrite bootstrap script so that it works when invoked by `sh bootstrap'

2015-07-28  Alex Vong  <alexvong1995@gmail.com>

	rename `mlucas_amd64' binaries to `amd64/mlucas'
	Since amd64_instruction_unspecified binaries are now in `amd64/',

	change `build_amd64/' to `amd64/'

2015-07-27  Alex Vong  <alexvong1995@gmail.com>

	add mkdir_p() which emulates `mkdir -p'
	so that we can create "$MLUCAS_PATH" directory by mkdir_p(MLUCAS_PATH);

2015-07-10  Alex Vong  <alexvong1995@gmail.com>

	modify scripts so that they now uses dirname of their path rather than cwd

2015-07-08  Alex Vong  <alexvong1995@gmail.com>

	add $(INSTRUCTIONCFLAGS) to allow optimization using -msse2, -mavx or -mavx2

2015-07-05  Alex Vong  <alexvong1995@gmail.com>

	Merge branch 'add-license'

	add the complete list of authors and their contributions to AUTHORS

2015-07-03  Alex Vong  <alexvong1995@gmail.com>

	add missing GPLv2+ license plate as comfirmed by Ernst

2015-07-03  Alex Vong  <alexvong1995@gmail.com>

	fix what get distributed
	1. add `bootstrap' to what get distributed

	2. always distribute `thread.c' no matter using threads or not

2015-07-03  Alex Vong  <alexvong1995@gmail.com>

	Merge branch 'remove-rocheck'

2015-07-03  Alex Vong  <alexvong1995@gmail.com>

	When amd64 instruction flag is unspecified, make `mlucas' a wrapper script
	instead of trying what instruction the host supports at make-time.

	The wrapper script tests for instruction-support at run-time.

	This avoids needing to re-install mlucas after a CPU upgrade

	although at the cost of having to store 3 binaries in `$(pkglibexecdir)'.

	Besides, remove `test/' and put all script-related files inside `scripts/'

	In addition, revise all comments to make life easier in the future.

2015-07-01  Alex Vong  <alexvong1995@gmail.com>

	remove the several lines documenting the now eliminated -rocheck flag
	of echo text from the -h output

	Ernst confirms that this will be included in the next release

2015-07-01  Alex Vong  <alexvong1995@gmail.com>

	change from substituting $STREAM to `2 >/dev/null'
	Thanks Thomas Jahns <jahns@dkrz.de> for pointing out that

	redirecting stdin to /dev/null may not be portable.

2015-06-28  Alex Vong  <alexvong1995@gmail.com>

	Merge branch 'mlucas_path'

	remove duplicate function prototypes (added by accident)

2015-06-28  Alex Vong  <alexvong1995@gmail.com>

	replace all THREADS-related AC_SUBST() by scheme procedure if-use-threads
	add scheme procedure amd64-rules->sse2-avx-avx2-rules

	to generate sse2, avx, avx2 rules from a single amd64 rule

	to avoid copy and paste programming

	add the bootstrap script to rebuild the configure script

2015-06-26  Alex Vong  <alexvong1995@gmail.com>

	Use `$(MKDIR_P)' instaed of `mkdir FOO >/dev/null 2>&1 || true'

2015-06-25  Alex Vong  <alexvong1995@gmail.com>

	use autogen to generate Makefile.am
	TODO: simplify those THREADS-related AC_SUBST()

	to make things easier to understand

2015-06-18  Alex Vong  <alexvong1995@gmail.com>

	fix license date

2015-06-17  Alex Vong  <alexvong1995@gmail.com>

	fix race condition during `$ make -j distcheck'

2015-06-16  Alex Vong  <alexvong1995@gmail.com>

	fix multithread switch description, enable `$make -j' and silent make rules

2015-06-14  Alex Vong  <alexvong1995@gmail.com>

	Merge branch 'mlucas_path'

	do multithread build if no --enable-threads or --disable-threads is given

2015-06-14  Alex Vong  <alexvong1995@gmail.com>

	add global variable MLUCAS_PATH and functions
	set_MLUCAS_PATH(), quote_spaces() and mlucas_fopen()

	so that user can specify where to put Mlucas-generated files

	MLUCAS_PATH must end with a slash, except it is an empty string

	For example, "$HOME/.mlucas.d/"

	user can set the global variable MLUCAS_PATH by one of the two ways:

	1. set environment variable MLUCAS_PATH

	2. define cpp macro MLUCAS_DEFAULT_PATH

	1 has precedence over 2 since only 1 can be set at run-time

	if nothing is set, MLUCAS_PATH will be the empty string

2015-06-11  Alex Vong  <alexvong1995@gmail.com>

	Merge branch 'i386-fixes'

2015-06-11  Alex Vong  <alexvong1995@gmail.com>

	I and Ernst fix pthread_create() failure in i386 multithread GNU/Linux build
	Our trick is to set stacksize soft limit to its hard limit

	and then call execvp() to *register* the change

2015-06-08  Alex Vong  <alexvong1995@gmail.com>

	Ernst's fix of fatal roundoff error of radix-16 routine

2015-06-02  Alex Vong  <alexvong1995@gmail.com>

	Ernst's fix of fatal roundoff error of radix-44 routine

2015-06-02  Alex Vong  <alexvong1995@gmail.com>

	Refactor code so that no SSE2/AVX/AVX2 availability check is needed
	First, we need to deal with 2 cases.

	1. non-amd64 build / amd64 build with SIMD instruction specified

	solution: To build with the specified set-up and output as mlucas.

	related Makefile fragment: am/generic.am

	2. amd64 build with no SIMD instruction specified

	solution: To build with all possible SIMD instructions (SSE2/AVX/AVX2)
	enabled and output as mlucas_sse2, mlucas_avx and mlucas_avx2.
	After that, copy the working one as mlucas.

	related Makefile fragment: am/amd64_instruction_unspecified.am

	Second, m4/ directory is removed to simplify things.

	All unused macros are removed and others are inlined inside configure.ac

2015-06-02  Alex Vong  <alexvong1995@gmail.com>

	remove broken test of checking SSE2/AVX/AVX2 instruction availability
	users are now required to specify --enable-instruction=[SSE2|AVX|AVX2]
	or --disable-instruction

2015-05-29  Alex Vong  <alexvong1995@gmail.com>

	fetch the latest version of html/README.html last revised on 25 May 2015

	Ernst's fix of undeclared and redeclared variables in i386 multithread build

2015-05-28  Alex Vong  <alexvong1995@gmail.com>

	combine code of Ernst and me so that it builds sucessfully in i386
	to build under i386, use -DCPU_IS_X86

2015-05-27  Alex Vong  <alexvong1995@gmail.com>

	fix CPPFLAGS for making i386 build, improve error detection for test cases
	CPPFLAGS for i386 build changes from `-Di386_build' to `-DCPU_IS_X86'

	test cases now have `set -e' in the beginning

2015-05-23  Alex Vong  <alexvong1995@gmail.com>

	add make check, README, change author's name and fix typos in configure.ac

2015-05-23  Alex Vong  <alexvong1995@gmail.com>

	add some (incomplete) documentation and some GNU standard required files
	The documentation are fetched from http://hogranch.com/mayer/README.html

	GNU standard required files are AUTHORS, ChangeLog, INSTALL, NEWS and README.

2015-05-18  Alex Vong  <alexvong1995@gmail.com>

	cleanup configure.ac and Makefile.am
	put code that does substitution in configure.ac into m4/subst_list.m4

	split long line in Makefile.am into multiple lines

2015-05-17  Alex Vong  <alexvong1995@gmail.com>

	add GPLv2

	make thread-support optional, add comments, quote shell code properly

2015-05-14  Alex Vong  <alexvong1995@gmail.com>

	add detection of i486, i586 and i686
	-m32 will be appened to CFLAGS if cpu is i386, i486, i586 or i686

	To force building as i?86, configure with

	$ ./configure --host=i?86

2015-05-14  Alex Vong  <alexvong1995@gmail.com>

	add cpu detection for i386 and amd64
	-m32 will be appened to CFLAGS if cpu is i386

	-m64 will be appened to CFLAGS if cpu is amd64

	To turn off autodetection, configure with

	$ ./configure --host=none

	To force building as i386, configure with

	$ ./configure --host=i386

	To force building as amd64, configure with

	$ ./configure --host=amd64

2015-05-14  Alex Vong  <alexvong1995@gmail.com>

	add 3 new options to configure script
	add --enable-NORMAL_CFLAGS='FOO', --enable-TRICKY_CFLAGS='FOO'
	and --enable-GLOBAL_LDFLAGS='FOO' options

	To obtain help about the new options, type

	$ ./configure -h | less

2015-05-13  Alex Vong  <alexvong1995@gmail.com>

	add .gitignore files

	initial commit
